- 軟件要求: Oracle 12c 的資料庫備份可以在下列平台上進行:Windows Server 2008/ 2008 R2/ 2012/ 2012 R2/ 2016.
- %edition_name% 安裝: Oracle 資料庫伺服器上必須安裝最新版本的 %edition_name% 。
- Oracle 資料庫伺服器擴充模組: 請確保%edition_name%用戶賬號已經開啟了 Oracle 資料庫伺服器擴充模組。
- 備份配額要求: 請確保%edition_name%用戶賬號擁有分配足夠的存儲配額用以容納Oracle資料庫備份集的存儲容量和保存政策。
- 實時備份模組: 如果需要開啟實時備份功能,請確保已經開啟了實時備份擴充模組。例如:你可以對你的Oracle實例進行每半小時或每小時一次的存檔日誌實時備份。
- Java heap大小: %edition_name% 的默認Java heap大小設置為2048MB。對於Oracle資料庫備份,強烈建議您將Java heap大小設置提升為至少 4096MB 以達至更佳的備份及還原性能。實際的Java heap大小取決於Oracle伺服器上之可用記憶體空間。
- 暫存資料夾: %edition_name% 上的暫存資料夾用作儲存存檔日誌備份及備份過程中所產生之增量或差異檔案。為達至最佳備份/還原性能,建議暫存資料夾位於本地磁碟機並且有大量空白磁碟空間。
磁碟空間計算公式如下:
(總資料庫大小 * 差異率) * 備份目標儲存位置數目 = 最大所需磁碟空間
例如: 由於默認差異率為50%,如果 Oracle 資料庫大小為1TB並且只有一個備份目標儲存位置,那麼暫存資料夾所需磁碟空間為500GB。
- 主機名: 為確保支援還原至原始位置,請在建立Oracle 備份集時輸入 127.0.0.1 作為主機名。
- Oracle內部流程檢查: 為使得Oracle實例執行流暢,請確保Oracle實例內部流程工作正常,例如:DBWO (Database Writer), LGWR (Log Writer), MMAN (Memory Manager Process), PMON (Process Monitor), PSPO (Process Spawner Process), SMON (System Monitor), CKPT (Checkpoint process (thread on Windows) that runs by default on Windows), ARCO (Archive Process (or thread on Windows)), RECO (Distributed Recovery Background Process).
SQL> select name, description from v$bgprocess where PADDR <>'00';
NAME     DESCRIPTION
-----   ---------------------------------------
PMON     process cleanup
VKTM     Virtual Keeper of TiMe process
GEN0     generic0
DIAG     diagnosibility process
DBRM     DataBase Resource Manager
VKRM     Virtual sKeduler for Resource Manager
PSP0     process spawner 0
DIA0     diagnosibility process 0
MMAN     Memory Manager
DBW0     db writer process 0
TMON     Transport Monitor
ARC0     Archival Process 0
ARC1     Archival Process 1
ARC2     Archival Process 2
ARC3     Archival Process 3
LGWR     Redo etc.
CKPT     checkpoint
SMON     System Monitor Process
SMCO     Space Manager Process
RECO     distributed recovery
LREG     Listener Registration
CJQ0     Job Queue Coordinator
AQPC     AQ Process Coord
MMON     Manageability Monitor Process
MMNL     Manageability Monitor Process 2
- Oracle資料庫伺服器支援版本: 請確保%edition_name%支援Oracle資料庫伺服器版本。
SQL> select * from v$version;
Banner
---------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
PL/SQL Release 12.1.0.1.0 - Production
CORE 12.1.0.1.0 Production
TNS for 64-bit Windows: Version 12.1.0.1.0 - Production
NLSRTL Version 12.1.0.1.0 – Production
- 系統標識符(SID): 通過下列方法查詢SID:
- SQL command
SQL > select instance from v$thread;
INSTANCE
--------------------------------------
Orcl12c
或者
- 在D:\app\oracle\admin路徑下的init.ora文檔 ,尋找下列句子:
###########################################
# Database Identification
###########################################
db_domain=""
db_name="orcl12c"
- Oracle_home 路徑: 通過下列方法查詢Oracle_home 路徑:
- SQL command
SQL > SELECT file_spec FROM DBA_LIBRARIES WHERE library_name = 'DBMS_SUMADV_LIB';
FILE_SPEC
-----------------------------------------------
D:\app\oracle\product\12.1.0\dbhome_1\bin\oraqsmashr.dll
所以Oracle_home路徑為 D:\app\oracle。
或者
- 在D:\app\oracle\admin路徑下的init.ora 文檔,尋找下列句子:
###########################################
# File Configuration
###########################################
control_files=("D:\app\oracle\oradata\orcl12c\control01.ctl", "D:\app\oracle\recovery_area\orcl12c\control02.ctl")
db_recovery_file_dest="D:\app\oracle\recovery_area"
db_recovery_file_dest_size=6930m
所以Oracle_home路徑為 D:\app\oracle。
!
請注意init.ora文檔中的oracle_home 路徑與通過SQL指令獲得的路徑必須一致。如果不一致,請聯繫Oracle資料庫管理員尋求支援。
- Oracle連接埠號碼: 採用 netstat 和 tnsping 來找出連接埠號碼。Oracle默認連接埠號碼為1521。
- NETSTAT
C:\Users\Administrator>netstat -a|more
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 w12x-5-43:0 LISTENING
TCP 0.0.0.0:445 w12x-5-43:0 LISTENING
TCP 0.0.0.0:1521 w12x-5-43:0 LISTENING
TCP 0.0.0.0:3389 w12x-5-43:0 LISTENING
TCP 10.16.10.81:139 w12x-5-43:0 LISTENING
TCP 10.16.10.81:1521 w12x-5-43:56851 ESTABLISHED
TCP 10.16.10.81:2030 w12x-5-43:0 LISTENING
TCP [::]:135 w12x-5-43:0 LISTENING
TCP [::]:445 w12x-5-43:0 LISTENING
TCP [::]:1521 w12x-5-43:0 LISTENING
TCP [::]:3389 w12x-5-43:0 LISTENING
TCP [fe80::4d71:5f81:58b0:552c%16]:2030 w12x-5-43:0 LISTENING
TCP [fe80::713e:e2d4:8e82:5f77%17]:1521 w12x-5-43:56760 ESTABLISHED
TCP [fe80::713e:e2d4:8e82:5f77%17]:2030 w12x-5-43:0 LISTENING
TCP [fe80::713e:e2d4:8e82:5f77%17]:56760 w12x-5-43:1521 ESTABLISHED
- TNSPING
C:\Users\Administrator>tnsping 127.0.0.1
TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 19-DEC-2017 15:38:56
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
D:\app\oracle\product\12.1.0\dbhome_1\network\admin\sqlnet.ora
Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
OK (0 msec)
- Windows VSS Writer: 請確保Oracle資料庫伺服器上安裝Windows VSS Writer並且Writer狀態為Stable。可以通過執行vssadmin list writers 指令來驗證。
C:\Users\Administrator>vssadmin list writers
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2012 Microsoft Corp.
Writer name: 'Task Scheduler Writer'
Writer Id: {d61d61c8-d73a-4eee-8cdd-f6f9786b7124}
Writer Instance Id: {1bddd48e-5052-49db-9b07-b96f96727e6b}
State: [1] Stable
Last error: No error
Writer name: 'VSS Metadata Store Writer'
Writer Id: {75dfb225-e2e4-4d39-9ac9-ffaff65ddf06}
Writer Instance Id: {088e7a7d-09a8-4cc6-a609-ad90e75ddc93}
State: [1] Stable
Last error: No error
Writer name: 'Performance Counters Writer'
Writer Id: {0bada1de-01a9-4625-8278-69e735f39dd2}
Writer Instance Id: {f0086dda-9efc-47c5-8eb6-a944c3d09381}
State: [1] Stable
Last error: No error
Writer name: 'System Writer'
Writer Id: {e8132975-6f93-4464-a53e-1050253ae220}
Writer Instance Id: {635755cd-b461-426c-89d1-95682a185005}
State: [1] Stable
Last error: No error
Writer name: 'ASR Writer'
Writer Id: {be000cbe-11fe-4426-9c58-531aa6355fc4}
Writer Instance Id: {b01dbf5b-b437-48ca-882f-c7ec08ef0a50}
State: [1] Stable
Last error: No error
Writer name: 'COM+ REGDB Writer'
Writer Id: {542da469-d3e1-473c-9f4f-7847f01fc64f}
Writer Instance Id: {8fdde399-1d13-40e7-97c5-595bbf52b291}
State: [1] Stable
Last error: No error
Writer name: 'BITS Writer'
Writer Id: {4969d978-be47-48b0-b100-f328f07ac1e0}
Writer Instance Id: {7993a1e2-e51d-461f-b6f9-e64c93fad1ae}
State: [1] Stable
Last error: No error
Writer name: 'WMI Writer'
Writer Id: {a6ad56c2-b509-4e6c-bb19-49d8f43532f0}
Writer Instance Id: {792c367d-1e21-4644-a63a-7d8ee4e2aaac}
State: [1] Stable
Last error: No error
Writer name: 'Shadow Copy Optimization Writer'
Writer Id: {4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f}
Writer Instance Id: {82fd1722-afcd-4f8e-95fd-8e5a2111c84c}
State: [1] Stable
Last error: No error
Writer name: 'Registry Writer'
Writer Id: {afbab4a2-367d-4d15-a586-71dbb18f8485}
Writer Instance Id: {723e8efc-3758-40c4-aaeb-88a4f43702d3}
State: [1] Stable
Last error: No error
- TNS Listener: 請確保開啟TNS listener以允許連結到Oracle。使用下列指令查詢TNS listener是否已開啟:
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 06-MAR-2018 10:46:34
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias        LISTENER
Version      TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Production
Start Date   26-FEB-2018 15:20:48
Uptime       7 days 19 hr. 25 min. 46 sec
Trace Level   off
Security     ON: Local OS Authentication
SNMP         OFF
Listener Parameter File     D:\app\oracle\product\12.1.0\dbhome_1\network\admin\listener.ora
Listener Log File     D:\app\oracle\diag\tnslsnr\w12x-5-43\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=w12x-5-43)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=w12x-5-43)(PORT=5500))(Security=(my_wallet_directory=D:\APP\ORACLE\admin\orcl12c\xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl12c" has 1 instance(s).
Instance "orcl12c", status READY, has 1 handler(s) for this service...
Service "orcl12cXDB" has 1 instance(s).
Instance "orcl12c", status READY, has 1 handler(s) for this service...
Service "pdborcl12c" has 1 instance(s).
Instance "orcl12c", status READY, has 1 handler(s) for this service...
The command completed successfully
如果未開啟,使用下列指令開啟TNS listener:
C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 19-DEC-2017 16:34:33
Copyright (c) 1991, 2013, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
ARCHIVELOG模式及資料庫狀態
- 資料庫實例必須為ARCHIVELOG模式。
SQL > archive log list;
Database log mode Archive Mode
Automatic archival Enables
- 資料庫狀態必須為open。
SQL > select instance_name, status form v$instance;
INSTANCE_NAME     STATUS
-------------     ----------
Orcl12c           OPEN
- Java 安裝: Oracle資料庫上必須安裝Java。
SQL > select comp_name, status from dba_registry;
COMP_NAME                               STATUS
---------                               ------------
OWB                                     VALID
Oracle Application Express               VALID
Oracle Enterprise Manager               VALID
OLAP Catalog                             VALID
Spatial                                 VALID
Oracle Multimedia                       VALID
Oracle XML Database                     VALID
Oracle Text                             VALID
Oracle Expression Filter                 VALID
Oracle Rules Manager                     VALID
Oracle Workspace Manager                 VALID
Oracle Database Catalog Views           VALID
Oracle Database Packages and Types       VALID
JServer JAVA Virtual Machine             VALID
Oracle XDK                               VALID
Oracle Database Java Package             VALID
- 用於認證備份/還原之Oracle登錄賬號: 應用Oracle system 賬戶以連結Oracle。
- 使用下列指令查詢賬戶是否具有JavaSysPriv認證:
SQL> select * from DBA_ROLE_PRIVS where upper(grantee)='SYSTEM';
GRANTEE   GRANTED_ROLE           ADM   DEF   COM
-------   ------------           ---   ---   ---
SYSTEM   JAVASYSPRIV             NO     YES   NO
SYSTEM   AQ_ADMINISTRATOR_ROLE   YES   YES   YES
如果未有認證,授予system賬戶javasyspriv認證:
SQL> grant javasyspriv to system;
- 使用下列指令查詢賬戶是否具有sysdba認證:
SQL> select * from v$pwfile_users where sysdba='TRUE';
USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID
-------- ----- ----- ----- ----- ----- ----- ------
SYS       TRUE TRUE FALSE FALSE FALSE FALSE     0
SYSTEM   TRUE FALSE FALSE FALSE FALSE FALSE     1
如果未有認證,授予system賬戶sysdba認證:
SQL> grant sysdba to system;
- Oracle資料庫磁碟機: Oracle資料庫磁碟機必須使用可以支援VSS快照的文檔系統,例如NTFS,因為%edition_name% v7 應用VSS快照進行Oracle資料庫備份。
- Windows用戶賬號許可: Windows用戶賬號必須屬於下列安全組。
- ora_dba
- ORA_OraDB12Home1_STSBACKUP
- ORA_OraDB12Home1_SYSDG
- ORA_OraDB12Home1_SYSKM
- Oracle資料庫相關的Windows服務: 請確保已經開始全部Oracle資料庫相關的Windows服務。
- OracleJobSchedulerORCL12C
- OracleOraDB12Home1MTSRecoveryService
- OracleOraDB12Home1TNSListener
- OracleRemExecServiceV2
- OracleServiceORCL12C